home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Best of Shareware
/
Best of PC Windows Shareware 1.0 - Wayzata Technology (7111) (1993).iso
/
mac
/
ZIPPED
/
DOS
/
GRAPHICS
/
POVSRC.ZIP
/
MACHINE.ZIP
/
MAC.SIT
/
POV-Ray.make
< prev
next >
Wrap
Text File
|
1992-05-05
|
17KB
|
419 lines
#
# ==============================================================================
# Project: POV-Ray
#
# File: POV-Ray.make
#
# Contents:
# MPW Make file, used to generate the POV-Ray application.
# Now works with MPW 3.0, 3.1, and 3.2.
#
# Related Files:
# POV.c: Main Program source
# POV-Ray.╣.rsrc: what rsrcs get appended..
# ------------------------------------------------------------------------------
# Written by:
# Eduard [esp] Schwan
# ------------------------------------------------------------------------------
# Change History:
# 920308 [esp] Created for POV-Ray
# 920315 [esp] Added -b compile option
# 920330 [esp] Did the file dependencies for real (by hand!)
# 920415 [esp] Added QuickTime and StdCompression files
# 920429 [esp] Changed QT & SC file placement, and changed app name to POV-Ray
# ==============================================================================
#
#------------------------------------------------------------------------------
# AppName sets the main application name for the make.
# AppSignature sets the Creator signature for the application.
#------------------------------------------------------------------------------
AppName = 'POV-Ray'
AppSignature = 'PVtm'
#------------------------------------------------------------------------------
# These are the paths to prefix source and object files, & additional folders with.
#------------------------------------------------------------------------------
srcpath = :
rezpath = :
incpath = :
objpath = :obj:
#------------------------------------------------------------------------------
# These are the include file hierarchy shorthand variables
#------------------------------------------------------------------------------
h_stdiop2w = ╢
{srcpath}stdio_p2w.h
h_p2w = ╢
{h_stdiop2w} ╢
{srcpath}printf2window.h
h_config = ╢
{srcpath}config.h ╢
{h_stdiop2w}
h_povmac = ╢
{srcpath}POVMac.h
h_frame = ╢
{h_config}
h_fp = ╢
{h_frame} ╢
{srcpath}povproto.h ╢
h_fvp = ╢
{h_frame} ╢
{srcpath}vector.h ╢
{srcpath}povproto.h ╢
h_fvpt = ╢
{h_fvp} ╢
{srcpath}texture.h ╢
#------------------------------------------------------------------------------
# These are the objects that we want to link with. If any one of these
# changes, then we invoke the Link command.
#------------------------------------------------------------------------------
AppObjects = ╢
{objpath}BEZIER.C.o ╢
{objpath}BLOB.C.o ╢
{objpath}BOXES.C.o ╢
{objpath}COLOUR.C.o ╢
{objpath}CSG.C.o ╢
{objpath}DUMP.C.o ╢
{objpath}GIF.C.o ╢
{objpath}GIFDECOD.C.o ╢
{objpath}HFIELD.C.o ╢
{objpath}IFF.C.o ╢
{objpath}LIGHTING.C.o ╢
{objpath}MATRICES.C.o ╢
{objpath}OBJECTS.C.o ╢
{objpath}PARSE.C.o ╢
{objpath}PLANES.C.o ╢
{objpath}POINT.C.o ╢
{objpath}POLY.C.o ╢
{objpath}POV.C.o ╢
{objpath}POVRAY.C.o ╢
{objpath}printf2window.c.o ╢
{objpath}PRIOQ.C.o ╢
{objpath}QUADRICS.C.o ╢
{objpath}RAW.C.o ╢
{objpath}RAY.C.o ╢
{objpath}RENDER.C.o ╢
{objpath}SaveCmpPict.c.o ╢
{objpath}SPHERES.C.o ╢
{objpath}TARGA.C.o ╢
{objpath}TextEditor.C.o ╢
{objpath}TEXTURE.C.o ╢
{objpath}TOKENIZE.C.o ╢
{objpath}TRIANGLE.C.o ╢
{objpath}TXTBUMP.C.o ╢
{objpath}TXTCOLOR.C.o ╢
{objpath}TXTMAP.C.o ╢
{objpath}TXTTEST.C.o ╢
{objpath}VECT.C.o ╢
{objpath}VIEWPNT.C.o ╢
{srcpath}StdCompressionGlue.o # QuickTime StdCmp Dialog
#------------------------------------------------------------------------------
# Options for our compilers:
# -sym on: tells the compilers and linker to emit symbol information for
# a source level debugger, such as SADE.
# -i {ExtraIncludes}: means to look for any #include files in the specified
# directory, as well as the normal set.
# -r: tells the C compiler to require function prototypes.
# -mbg off: tells the compilers to not emit low-level debugger names. This
# saves on file space, but you may wish to remove this option if you
# need to debug with something like Macsbug.
# -rd: for Rez means to suppress warnings for redeclared types (we redeclare
# 'RECT' because it╒s not included in MPW 3.0).
# -append: means to add the resources to the target file, rather than
# deleting all the ones that are there first.
# -d Signature...: is a way of passing our application's signature to Rez.
# With this mechanism, we can define our signature here, and export
# it to Rez, so that we don't have to declare it there, too.
# -sn STDCLIB=Main: puts all the routines that would normally go into the
# STDCLIB segment into the Main segment. This is done so that when we
# call upon any low-level utilities, we don't potentially move memory
# by loading in a segment.
#------------------------------------------------------------------------------
DebugStmts = #-d NEEDS_DEBUG # turn on to add internal debug stmts
Cmp020Options = -d NEEDS_020 -mc68020 # turn on to force 68020 or better CPU code
CmpColorQD = -d NEEDS_COLORQD # turn on to force Color Quickdraw ROM Support
Cmp32BitQD = -d NEEDS_32BITQD # turn on to force 32Bit Quickdraw ROM Support
CmpFPUOptions = -d NEEDS_FPU -mc68881 -elems881 # turn on to force 68881 FPU calls
LinkFPULibs = -d "{CLibraries}"Clib881.o "{CLibraries}"CSANELib881.o "{CLibraries}"Math881.o
# # turn on to use 68881 FPU calls
PerfCmpOptions = #-d NEEDS_PERF=1 # turn on to enable performance code
PerfLinkOptions = #"{Libraries}"PerformLib.o # turn on to use performance tools
#MapOptions = -l -la > {AppName}.Map # use this with PerfLinkOptions
MapOptions = -l -map > {AppName}.Map # or use this for human-readable map
SymOptions = -sym full # turn on to debug with SADE
MbgOptions = -mbg on # turn on to insert MacsBug labels
CInc2Folders = #-i {incpath}
RInc2Folders = #-i {rezpath}
#----------------
# Good ol' MPW 3.2 std libraries are now in their own segments, for reasons known only to
# the MPW team.. Put them back into the main segment so we don't get totally fragmented..
SegmentMappings = -sn INTENV=Main ╢
-sn PASLIB=Main ╢
-sn SADEV=Main ╢
-sn STDCLIB=Main ╢
-sn STDIO=Main ╢
-sn CSANELib=Main ╢
-sn SANELIB=Main
#----------------
MyCOptions = {COptions} -r -model fardata {CInc2Folders} {SymOptions} ╢
{DebugStmts} {Cmp020Options} {CmpFPUOptions} {CmpColorQD} ╢
{Cmp32bitQD} {PerfCmpOptions} {MbgOptions}
RezOptions = -rd -append {RInc2Folders} -d AppSignature={AppSignature} -d AppName={AppName}
LinkOptions = {SymOptions} -model far {PerfLinkOptions} {SegmentMappings} {MapOptions}
#------------------------------------------------------------------------------
# These help define the libraries that we want to link with. {AppObjects} holds
# the names of the application units we want to link together. {CLibs} holds
# the libraries we want to link with under MPW 3.0 or MPW 3.1. Under MPW 3.2
# and later, ╥CInterface.o╙ and ╥CRuntime.o╙ are merged with ╥Interface.o╙ and
# ╥Runtime.o╙. So, under 3.2 and later, we link with the files in {CLibs32}
# instead.
#------------------------------------------------------------------------------
PLibs = ╢
"{Libraries}Runtime.o" ╢
"{Libraries}Interface.o" ╢
"{PLibraries}PasLib.o"
PLibs32 = ╢
"{Libraries}Runtime.o" ╢
"{Libraries}Interface.o" ╢
"{PLibraries}PasLib.o"
CLibs = ╢
{LinkFPULibs} ╢
"{CLibraries}StdCLib.o" ╢
"{CLibraries}CRuntime.o" ╢
"{CLibraries}CInterface.o" ╢
"{Libraries}Interface.o"
CLibs32 = ╢
{LinkFPULibs} ╢
"{CLibraries}StdCLib.o" ╢
"{Libraries}Runtime.o" ╢
"{Libraries}Interface.o"
#------------------------------------------------------------------------------
# This is a dummy dependency rule. This will always be executed. This dummy
# rule must be the first for {AppName} so that it will be executed first.
# This is necessary to make evaluations that are beyond the scope of
# Make. These evaluations will be performed by the CShell at execution time,
# and they must execute first because compile and link command lines depend
# on variables set up by these evaluations. This has the unfortunate side
# effect that Make will always consider {AppName} to be out of date. It will
# always, at a minimum, execute the commands for the target ShellForce.
#------------------------------------------------------------------------------
{AppName} ── ShellForce
# With the above rule, {AppName} will always be out of date with respect to
# the non-existent file ShellForce. This will force the following commands to
# be executed.
ShellForce ─
BEGIN
IF "{ShellVersion}" == ""
( EVALUATE "`Version`" =~ /MPW Shell┼ ([0-9]+(.[ab0-9]+)+)¿1┼/ ) ╖ Dev:Null
SET ShellVersion "{¿1}"
END
IF "{ShellVersion}" =~ /3.[01]┼/
SET PAltOptions "-d MPW32=FALSE"
SET CAltOptions "-d MPW31"
SET PSysObjects "`QUOTE {PLibs}`"
SET CSysObjects "`QUOTE {CLibs}`"
ELSE
SET PAltOptions "-d MPW32=TRUE"
SET CAltOptions "-d MPW32"
SET PSysObjects "`QUOTE {PLibs32}`"
SET CSysObjects "`QUOTE {CLibs32}`"
END
END ╖ Dev:Null # Output to bit bucket so we don╒t see above calculations
#------------------------------------------------------------------------------
# Build rule that links our application together. If any of our objects
# change, or this makefile changes, then we relink. The dummy prerequisite
# ShellForce must come before any other prerequisites for {AppName}
#------------------------------------------------------------------------------
{AppName} ── {AppName}.make {AppObjects}
Link {LinkOptions} -o {Targ} {AppObjects} {CSysObjects}
# Set file's creator type, turn on bundle bit, turn off inited bit
SetFile {Targ} -t APPL -c {AppSignature} -a Bi
#------------------------------------------------------------------------------
# Build rule that creates our resources and adds them to the application
#------------------------------------------------------------------------------
{AppName} ── {AppName}.make ╢
{AppName}.r ╢
# {AppName}.╣.rsrc ╢
POV.╣.rsrc
Rez {RezOptions} {AppName}.r -o {Targ}
#------------------------------------------------------------------------------
# Segment Names for the code segments
#------------------------------------------------------------------------------
segPOV = -s 'povMac'
segPOVRay = -s 'povRay'
segWindows = -s 'povWindows'
segPrim1 = -s 'povPrim1'
segPrim2 = -s 'povPrim2'
segPrim3 = -s 'povPrim3'
segTex = -s 'povTex'
segPix = -s 'povPix'
segParse = -s 'povParse'
segTok = -s 'povTok'
segPrimPoly = -s 'povPrimPoly'
segPrimBez = -s 'povPrimBez'
#------------------------------------------------------------------------------
# Build rules that compile our app-specific source files
#------------------------------------------------------------------------------
# Here are some suggested partitions for the Project file: (from Jim N.)
# Segment 1: POV.C, printf2window.c, TextEditor.c
# Segment 2: ANSI 881/020 No Console, MacTraps, MacTraps2
# Segment 3: boxes.c, colour.c, csg.c, lighting.c, matrices.c, objects.c,
# planes.c, prioq.c, quadrics.c, ray.c, render.c, spheres.c
# Segment 4: texture.c, txtbump.c, txtcolor.c, txtmap.c, txttest.c
# Segment 5: dump.c, gif.c, gifdecod.c, iff.c, raw.c, targa.c, triangle.c
# Segment 6: parse.c, tokenize.c, viewpnt.c
# Segment 7: bezier.c, hfield.c
# Segment 8: blob.c, point.c, poly.c, vect.c
# Segment 9: POVRay.C
{objpath}BEZIER.C.o ── {h_fvp} {srcpath}BEZIER.C
{C} {segPrimBez} {MyCOptions} {CAltOptions} {srcpath}BEZIER.C -o {objpath}BEZIER.C.o
{objpath}BLOB.C.o ── {h_fvp} {srcpath}BLOB.C
{C} {segPrim2} {MyCOptions} {CAltOptions} {srcpath}BLOB.C -o {objpath}BLOB.C.o
{objpath}BOXES.C.o ── {h_fvp} {srcpath}BOXES.C
{C} {segPrim1} {MyCOptions} {CAltOptions} {srcpath}BOXES.C -o {objpath}BOXES.C.o
{objpath}COLOUR.C.o ── {h_fvp} {srcpath}COLOUR.C
{C} {segPrim1} {MyCOptions} {CAltOptions} {srcpath}COLOUR.C -o {objpath}COLOUR.C.o
{objpath}CSG.C.o ── {h_fvp} {srcpath}CSG.C
{C} {segPrim1} {MyCOptions} {CAltOptions} {srcpath}CSG.C -o {objpath}CSG.C.o
{objpath}DUMP.C.o ── {h_fp} {srcpath}DUMP.C
{C} {segPix} {MyCOptions} {CAltOptions} {srcpath}DUMP.C -o {objpath}DUMP.C.o
{objpath}GIF.C.o ── {h_fp} {srcpath}GIF.C
{C} {segPix} {MyCOptions} {CAltOptions} {srcpath}GIF.C -o {objpath}GIF.C.o
{objpath}GIFDECOD.C.o ── {h_fp} {srcpath}GIFDECOD.C
{C} {segPix} {MyCOptions} {CAltOptions} {srcpath}GIFDECOD.C -o {objpath}GIFDECOD.C.o
{objpath}HFIELD.C.o ── {h_fvp} {srcpath}HFIELD.C
{C} {segPix} {MyCOptions} {CAltOptions} {srcpath}HFIELD.C -o {objpath}HFIELD.C.o
{objpath}IFF.C.o ── {h_fp} {srcpath}IFF.C
{C} {segPix} {MyCOptions} {CAltOptions} {srcpath}IFF.C -o {objpath}IFF.C.o
{objpath}LIGHTING.C.o ── {h_fvp} {srcpath}LIGHTING.C
{C} {segPrim1} {MyCOptions} {CAltOptions} {srcpath}LIGHTING.C -o {objpath}LIGHTING.C.o
{objpath}MATRICES.C.o ── {h_fvp} {srcpath}MATRICES.C
{C} {segPrim2} {MyCOptions} {CAltOptions} {srcpath}MATRICES.C -o {objpath}MATRICES.C.o
{objpath}OBJECTS.C.o ── {h_fvp} {srcpath}OBJECTS.C
{C} {segPrim1} {MyCOptions} {CAltOptions} {srcpath}OBJECTS.C -o {objpath}OBJECTS.C.o
{objpath}PARSE.C.o ── {h_fvp} {srcpath}PARSE.C
{C} {segParse} {MyCOptions} {CAltOptions} {srcpath}PARSE.C -o {objpath}PARSE.C.o
{objpath}PLANES.C.o ── {h_fvp} {srcpath}PLANES.C
{C} {segPrim1} {MyCOptions} {CAltOptions} {srcpath}PLANES.C -o {objpath}PLANES.C.o
{objpath}POINT.C.o ── {h_fvp} {srcpath}POINT.C
{C} {segPrim1} {MyCOptions} {CAltOptions} {srcpath}POINT.C -o {objpath}POINT.C.o
{objpath}POLY.C.o ── {h_fvp} {srcpath}POLY.C
{C} {segPrimPoly} {MyCOptions} {CAltOptions} {srcpath}POLY.C -o {objpath}POLY.C.o
{objpath}POV.C.o ── {h_fp} {h_povmac} {h_p2w} {srcpath}SaveCmpPict.h {srcpath}POV.C
{C} {segPOV} {MyCOptions} {CAltOptions} {srcpath}POV.C -o {objpath}POV.C.o
{objpath}POVRAY.C.o ── {h_fvp} {srcpath}POVRAY.C
{C} {segPOVRay} {MyCOptions} {CAltOptions} {srcpath}POVRAY.C -o {objpath}POVRAY.C.o
{objpath}printf2window.c.o ── {h_p2w} {srcpath}printf2window.c
{C} {segWindows} {MyCOptions} {CAltOptions} {srcpath}printf2window.c -o {objpath}printf2window.c.o
{objpath}PRIOQ.C.o ── {h_fp} {srcpath}PRIOQ.C
{C} {segPrim2} {MyCOptions} {CAltOptions} {srcpath}PRIOQ.C -o {objpath}PRIOQ.C.o
{objpath}QUADRICS.C.o ── {h_fvp} {srcpath}QUADRICS.C
{C} {segPrimPoly} {MyCOptions} {CAltOptions} {srcpath}QUADRICS.C -o {objpath}QUADRICS.C.o
{objpath}RAW.C.o ── {h_fp} {srcpath}RAW.C
{C} {segPix} {MyCOptions} {CAltOptions} {srcpath}RAW.C -o {objpath}RAW.C.o
{objpath}RAY.C.o ── {h_fvp} {srcpath}RAY.C
{C} {segPrim2} {MyCOptions} {CAltOptions} {srcpath}RAY.C -o {objpath}RAY.C.o
{objpath}RENDER.C.o ── {h_fvp} {srcpath}RENDER.C
{C} {segPrim2} {MyCOptions} {CAltOptions} {srcpath}RENDER.C -o {objpath}RENDER.C.o
{objpath}SaveCmpPict.c.o ── {srcpath}SaveCmpPict.h {srcpath}SaveCmpPict.c
{C} {segPix} {MyCOptions} {CAltOptions} {srcpath}SaveCmpPict.c -o {objpath}SaveCmpPict.c.o
{objpath}SPHERES.C.o ── {h_fvp} {srcpath}SPHERES.C
{C} {segPrim1} {MyCOptions} {CAltOptions} {srcpath}SPHERES.C -o {objpath}SPHERES.C.o
{objpath}TARGA.C.o ── {h_fp} {srcpath}TARGA.C
{C} {segPix} {MyCOptions} {CAltOptions} {srcpath}TARGA.C -o {objpath}TARGA.C.o
{objpath}TextEditor.C.o ── {h_config} {h_povmac} {srcpath}TextEditor.C
{C} {segWindows} {MyCOptions} {CAltOptions} {srcpath}TextEditor.C -o {objpath}TextEditor.C.o
{objpath}TEXTURE.C.o ── {h_fvpt} {srcpath}TEXTURE.C
{C} {segTex} {MyCOptions} {CAltOptions} {srcpath}TEXTURE.C -o {objpath}TEXTURE.C.o
{objpath}TOKENIZE.C.o ── {h_fp} {srcpath}TOKENIZE.C
{C} {segTok} {MyCOptions} {CAltOptions} {srcpath}TOKENIZE.C -o {objpath}TOKENIZE.C.o
{objpath}TRIANGLE.C.o ── {h_fvp} {srcpath}TRIANGLE.C
{C} {segPrim2} {MyCOptions} {CAltOptions} {srcpath}TRIANGLE.C -o {objpath}TRIANGLE.C.o
{objpath}TXTBUMP.C.o ── {h_fvpt} {srcpath}TXTBUMP.C
{C} {segTex} {MyCOptions} {CAltOptions} {srcpath}TXTBUMP.C -o {objpath}TXTBUMP.C.o
{objpath}TXTCOLOR.C.o ── {h_fvpt} {srcpath}TXTCOLOR.C
{C} {segTex} {MyCOptions} {CAltOptions} {srcpath}TXTCOLOR.C -o {objpath}TXTCOLOR.C.o
{objpath}TXTMAP.C.o ── {h_fvpt} {srcpath}TXTMAP.C
{C} {segTex} {MyCOptions} {CAltOptions} {srcpath}TXTMAP.C -o {objpath}TXTMAP.C.o
{objpath}TXTTEST.C.o ── {h_fvpt} {srcpath}TXTTEST.C
{C} {segPrim2} {MyCOptions} {CAltOptions} {srcpath}TXTTEST.C -o {objpath}TXTTEST.C.o
{objpath}VECT.C.o ── {h_fvp} {srcpath}VECT.C
{C} {segPrim1} {MyCOptions} {CAltOptions} {srcpath}VECT.C -o {objpath}VECT.C.o
{objpath}VIEWPNT.C.o ── {h_fvpt} {srcpath}VIEWPNT.C
{C} {segTok} {MyCOptions} {CAltOptions} {srcpath}VIEWPNT.C -o {objpath}VIEWPNT.C.o